//
//  MSNetWorkRequestManager.m
//  EPA
//
//  Created by lanou3g on 16/4/15.
//  Copyright © 2016年 myFree. All rights reserved.
//

#import "MSNetWorkRequestManager.h"

@interface MSNetWorkRequestManager()

@end

@implementation MSNetWorkRequestManager


//请求方法

+(void)requestURL:(NSURL *)url Method:(URLRequestMethod)method Params:(NSDictionary *)param Result:(ResultBlock)resultBlock {
    //空的可变字符串
    NSMutableString *urlString =  [NSMutableString new];
    if ([url isKindOfClass:[NSURL class]]) {
        //拼接URL
        [urlString appendString:url.absoluteString];
    }else if ([url isKindOfClass:[NSString class]]) {
        [urlString appendString:(NSString *)url];
    }
    if (urlString.length == 0) {
        NSError *error = [NSError errorWithDomain:@"EPA" code:251 userInfo:@{@"reason":@"你输入的网址不正确"}];
        resultBlock(nil,nil,error);
        return;
    }
    //把参数转为字典
    MSNetWorkRequestManager *manager = [MSNetWorkRequestManager new];
   
    NSString *paraStr = [manager strFromDict:param];
    
    switch (method) {
        case MS_GET:
        {
            if (paraStr.length > 0) {
                [urlString appendFormat:@"?%@",paraStr];
            }
            [manager requestURL:[NSURL URLWithString:urlString]resultBlock:resultBlock];
            break;
        }
            case MS_POST:
            [manager postURL:urlString paraStr:paraStr ResultBlock:resultBlock];
            break;
        default:
            break;
    }
    
}
//GET网络请求
- (void)requestURL:(NSURL *)url resultBlock:(ResultBlock)block {

    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]dataTaskWithURL:url completionHandler:block];
    //开始网络请求
    [ dataTask resume];
}
//POST网络请求
- (void)postURL:(NSString *)urlStr paraStr:(NSString *)paraStr ResultBlock:(ResultBlock)block{
    
     //创建NSURL
    NSURL *url = [NSURL URLWithString:urlStr];
    //创建可变请求
    NSMutableURLRequest *mRequest = [NSMutableURLRequest requestWithURL:url];
    //设置post
    [mRequest setHTTPMethod:@"POST"];
    //请求体
    [mRequest setHTTPBody:[paraStr dataUsingEncoding:NSUTF8StringEncoding]];
    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]dataTaskWithRequest:mRequest completionHandler:block];
    [dataTask resume];
    
}


- (NSString *)strFromDict:(NSDictionary *)dict {

    //空的数组
    NSMutableArray *array = [NSMutableArray new];
    for (NSString *key in dict) {
        
        NSString *str = [NSString stringWithFormat:@"%@=%@",key,dict[key]];
        [array addObject:str];
    }
    //数组拼接字符串
    NSString *para = [array componentsJoinedByString:@"&"];
    NSLog(@"%@",para);
 //返回paraStr

    return para;
}





@end
